package com.ruoyi.common.utils;

import net.sourceforge.pinyin4j.PinyinHelper;
import org.apache.commons.lang3.StringUtils;

public class CharacterUtils {


    /**
     * 根据字符传返回首字母
     * @param str
     * @return
     */
    public static String getFirstLetter(String str) {
        StringBuilder sb = new StringBuilder();
        for (char c : str.toCharArray()) {
            // 检查字符是否为汉字
            if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
                // 获取字符的拼音首字母
                String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c);
                if (pinyinArray != null && pinyinArray.length > 0) {
                    sb.append(pinyinArray[0].charAt(0));
                    return  sb.toString();
                }
            } else {
                sb.append(c);
                return sb.toString();
            }
        }
        return sb.toString();
    }

    /**
     * 小写转大写
     * @param input
     * @return
     */
    public static String convertToUpperCase1(String input) {
        return input.toUpperCase();
    }

    /**
     * 提取首字母
     * @param str
     * @return
     */
    public static String extractInitial(String str) {
        if(StringUtils.isEmpty(str)){
            return str;
        }
        String firstLetter = getFirstLetter(str);
        if(StringUtils.isEmpty(str)){
            return str;
        }
        return firstLetter.toUpperCase();
    }

}
